package com.TangoGames.panel;

import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Map;
import android.app.Activity;
import android.media.MediaPlayer;

/**
 * 
 * @author Arthur
 * @param <EnumState>
 * @param <EnumState>
 *
 */
public interface IBasePanel {

	/**
	 * Pega o Painel corrente
	 * @return
	 * current panel
	 */
	IPanelState getCurrentPanel();
	
	/**
	 * 
	 * @return
	 */
	IStates getCurrentState();
	
	/**
	 * Atribui Painel corrente
	 * @param currentState
	 */
	void setCurrentState(IStates state);
	
	/**
	 * 
	 */
	Map <IStates,IPanelState> getListOfPanels();
	
	/**
	 * 
	 * @return
	 */
	Activity getMainActivity();
	
	/**
	 * 
	 * @return
	 */
	MediaPlayer getMediaPlayer();
	
	/**
	 * 
	 * @param musicFile
	 */
	void setBackGroundMusic(String musicFile);
	
	/**
	 * 
	 * @return
	 */
	boolean isPause();
	
	/**
	 * 
	 * @param panel
	 * @param event
	 */
	<T extends Enum<T> & IPanelEvent>void handlePanelEvent(IPanelState sourcePanel, T event);
		
}
